Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
1998
Тип роботи:
Курсова робота
Предмет:
Інформатика

Частина тексту файла

Національний Університет "Києво-Могилянська Академія" Кафедра інформатики Створення гри типу DOOM, Wolf 3D Курсова робота студента ДКТ-3 Підгорного Свєтослава Науковий керівник: Медведєв М.Г. Київ 1998 План Створення простого тривимірного зображення кадру гри. Основи. Метод визначення швидкості роботи гри. Додаткові можливості. Система розробки: Pentium 150Mhz, 32M RAM, 1G HDD, S3 SVGA, Borland C++ 3.1 Мета: Створити гру, що зовнішньо схожа на Wolfenstein 3D Методы: Гра створена за методом, що зветься Ray Casting (проведення променя) — процес зображення тривимірного світу за двовимірною інформацією. Ось основні принципи цього методу: 1. На основі двовимірної карти, що схожа на папір в клітинку, будується лабіринт, що складається з замальованих та чистих клітинок.  2. Мапа створена з квадратів фіксованого розміру (в нашому випадку — 64 x 64), що дозволяє кожному об’єкту (гравцю) пересуватися на 64 одиниці в будь-якому напрямі до переходу на інший квадрат. Весь лабіринт складається з таких квадратів, що утворюють двовимірний масив. 3. Гравець визначається як місце на цій мапі, що має три характеристики: координату X координату Y кут зору  Так як ми знаємо, де знаходиться гравець та те, в який бік він дивиться, ми можемо взнати, що він бачить в цей момент. Для початку нам треба вирішити яке поле зору має гравець. Нехай це буде 60(, для того щоб зображення було найбільш реалістичним. Це значить, що гравець буде бачити всі предмети та стіни на 30( ліворуч та на 30( праворуч. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  5. Тепер ми отримали поле зору, що включає в себе стіни попереду гравця при данному куті зору. 6. Ось що має бачити гравець в цьому випадку.  7. Так як же все ж таки отримати таке тривимірне зображення з двовимірної мапи? Просто вираховуючи висоту стін як функцію від відстані. Маючи поточні координати гравця, координати стіни та, використовуючи тригонометрію, ми можемо визначити відстань між гравцем та стіною. Проблема в тому, щоб виконати всі ці розрахунки настільки швидко, щоб гра виглядала реалістично. Але цим ми займемося пізніше. Зараз нехай спрацює простий метод визначення відстані до стіни. При цьому потрібно пам’ятати, що ми проводимо промінь для кожного стовпчика пікселей екрану, що для режиму VGA 13h (320x200x256) дає нам 320 стовпчиків по 200 пікселів. Тобто, 320 променів буде проведено щоб намалювати 1 кадр. 8. Почнемо з заповнення початкових значень для гравця. Як ми вже сказали, кожний квадрат має розміри 64x64 одиниці. Нехай гравець стоїть в клітинці (1, 1) десь на ¾ клітинки згори та на ¼ клітинки зліва. Значить координати гравця десь приблизно (80, 112) (64 + 64 * ¼, 64 + 64 * ¾). Початковий кут зору буде 0(. Так як ми будемо використовувати тригонометричні функції з бібліотеки <math.h> мови C, ми будемо використовувати координатну систему, де кут збільшується за годинниковою стрілкою.  9. Тому, як було сказано в пункті 4, ми починаємо проводити промені від 30( зліва від нашого кута зору (=0() (або з 330() до 30( справа від нашого кута зору (або до 30(). Можна побачити правильний трикутник від того місця де стоїть гравець до точки з кутом 330(.  ; ; ; 10. Зараз ми можемо намалювати (вигадану) лінію від гравця до якої-небудь точки на куті 330(. Але наскільки ж довгою має бути ця лінія? Настільки, щоб можна було визначити що ми натрапили на стіну або вийшли за межі нашого лабіринту. Нехай наш лабіринт має розміри 10x8 (x*y). Тоді у нас 80 квадратів. Тоді максимальна ширина (довжина) нашого лабіринту —64 * 10 = 640 на 64 * 8 = 512. Максимальна відстань, на яку нам потрібно пускати промінь — , , що дорівнює 819.5999 або 820 одиниць. Що ж, 820 це максимальна відстань, на яку ми можемо пустити промінь, переглядаючи по дорозі чи не натрапили ми на стіну або чи не вийшли ми за межі лабіринту. Ми звели проведення променя до малювання лінії. А для малювання лінії у нас є алгоритм Брезенхама. Нам треба тільки визначити координати кінцевих ...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини